package cn.hinglo.business.controller;

import cn.hinglo.business.model.UserInfo;
import cn.hinglo.business.service.UserInfoService;
import cn.hinglo.common.annotation.RequestMapping;
import cn.hinglo.common.config.base.BaseController;
import cn.hinglo.common.interceptors.request.Get;
import cn.hinglo.common.interceptors.request.Post;
import cn.hinglo.common.interceptors.request.Put;
import com.jfinal.aop.Before;
import com.jfinal.aop.Inject;
import com.jfinal.core.paragetter.Para;
import com.jfinal.upload.UploadFile;

/**
 * @author HingLo.C
 * @description: 用户管理
 */
@RequestMapping("/userInfo")
public class UserInfoController extends BaseController {

    @Inject
    private UserInfoService userInfoService;


    /***
     * 用户列表
     * @param page 页码
     * @param pageSize 大小
     */
    @Before(Get.class)
    public void list(Integer page, Integer pageSize) {
        success(userInfoService.listService(getPage(page), getSize(pageSize)));
    }

    /***
     * 返回用户信息，根据用户的唯一编号
     * @param id 主键
     */
    @Before(Get.class)
    public void getUser(Integer id) {
        success(userInfoService.getUserService(id));
    }


    /***
     * 修改状态
     * @param id 用户主键
     */
    @Before(Put.class)
    public void updateModify(Long id, Integer modify) {
        result(userInfoService.updateModifyService(id, modify), "修改失败");
    }

    /***
     * 获取用户信息
     * @return 返回信息
     */
    @Before(Put.class)
    public void updateUserInfo(@Para("") UserInfo userInfo) {
        result(userInfoService.updateUserInfoService(userInfo), "更新失败");
    }

    /***
     * 头像修改
     * @param img 图片信息
     */
    @Before(Post.class)
    public void changeAvatar(UploadFile img) {
        success(userInfoService.changeAvatarService(getUserId(), img));
    }

}
